package com.itcam.cammyapiinterface.controller;

import com.itcam.cammyapiclientsdk.model.User;
import com.itcam.cammyapiclientsdk.utils.SignUtils;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;

/**
 * Author:Cammy.Wu
 * Date:2024-06-04
 * Description:名称API
 */

@RestController
@RequestMapping("/name")
public class NameController {

    @GetMapping("/get")
    public String getNameByGet(String name, HttpServletRequest request) {
        System.out.println(request.getHeader("cammy"));
        return "GET 你的名字是 " + name;
    }

    @PostMapping("/post")
    public String getNameByPost(@RequestParam String name) {
        return "POST 你的名字是 " + name;
    }

    @PostMapping("/user")
    public String getUsernameByPost(@RequestBody User user, HttpServletRequest request) {
//        // 从请求头获取参数
//        String accessKey = request.getHeader("accessKey");
//        String nonce = request.getHeader("nonce");
//        String timestamp = request.getHeader("timestamp");
//        String sign = request.getHeader("sign");
//        String body = request.getHeader("body");
//        // todo:实际情况应该是去数据库张查是否分配给用户
//        if (!accessKey.equals("cammy")) {
//            throw new RuntimeException("无权限");
//        }
//        // todo:随机数
//        if (Long.parseLong(nonce) > 10000) {
//            throw new RuntimeException("无权限");
//        }
//
//        // todo:时间和当前时间不能超过5分钟
//        if (Long.parseLong(timestamp) > System.currentTimeMillis() + 5 * 60 * 1000) {
//            throw new RuntimeException("无权限");
//        }
//
//        // todo:实际情况中是从数据库中查出secretKey
//        String serverSign = SignUtils.genSign(body, "158633115");
//        if (!sign.equals(serverSign)) {
//            throw new RuntimeException("无权限");
//        }

        String result = "POST 用户名字是 " + user.getUsername();
        return result;
    }
}
